
class ObjectSpec {
 public:
  ObjectSpec (Expr *classname, Expr *condition = NULL, Expr *retr = NULL, Expr *sort = NULL);
  void appendObjectSpec (ObjectSpec *objspec);
  void setChildObject (ObjectSpec *objspec);

 private:
  Expr *className;

  Expr *conditionList;
  Expr *retrList;
  Expr *sortList;

  vector<ObjectSpec*> objSpecList;

  ObjectSpec *childObj; /* maps boql: parentObj -> childObj */
};
